package com.iflytek.jnitest.jnitest;

/**
 * @author ruiding
 * @date 2017/6/28.
 */
public class TestJni {

    static {
        System.loadLibrary("hello-android-jni");
    }

    public native String getMsgFromJni();

    /**
     * 测试野指针问题
     * 写野指针指向的内存，有可能不会马上crash，而是破坏了别处的内存
     */
    public native static void makeWildPointException();

    /**
     * 测试数组越界
     * 数组越界，有可能不会马上crash，而是破坏了别处的内存
     */
    public native static void makeOutOfBoundException();

    /**
     * 除数除以0，产生SIGFPE信号，导致crash
     *
     */
    public native static void makeDividedZero();

    /**
     * 格式化参数错误，可能会导致非法的内存访问，从而造成crash
     */
    public native static void makeFormatException();

    /**
     * buffer溢出，产生SIGABRT或者SIGSEGV，造成Crash
     */
    public native static void makeOutOfBuffer();

    /**
     * 生成SIGABRT
     */
    public native static void makeSigAbrt();
}
